home *** CD-ROM | disk | FTP | other *** search
/ Suzy B Software 2 / Suzy B Software CD-ROM 2 (1994).iso / extras / boot_up / deskdrop / dskdrp12.lst < prev    next >
File List  |  1995-04-27  |  3KB  |  162 lines

  1. ' DeskDrop Version 1.2
  2. ' by Walter S. Wilson, 02 January 1995
  3. ' in GFA 3.5e
  4. '
  5. fsource$=CHAR{BASEPAGE+&H81}         ! command line
  6. '
  7. IF fsource$=""
  8.   ALERT 1," You haven't read | the manual yet? ",1," Oops! ",b%
  9.   GOSUB end_thing
  10. ENDIF
  11. '
  12. RESERVE 110000
  13. GOSUB setup
  14. '
  15. GOSUB get_drive
  16. GOSUB oldfile
  17. GOSUB burt
  18. GOSUB memclear
  19. GOSUB end_thing
  20. '                               Procedures
  21. > PROCEDURE setup              !  MALLOC and buffer sizing
  22.   '
  23.   adr%=MALLOC(32000)
  24.   IF adr%<0
  25.     '
  26.     ALERT 1," Couldn't allocate | 32k of contiguous | RAM! ",1," Ouch! ",b%
  27.     GOSUB memclear
  28.     GOSUB end_thing
  29.   ENDIF
  30.   bsize%=32000
  31.   '
  32. RETURN
  33. > PROCEDURE get_drive          !  Current drive and destination path
  34.   '
  35.   drive%=GEMDOS(25)
  36.   dr$=CHR$(65+drive%)+":"
  37.   '
  38.   fdest$=dr$+"\NEWDESK.INF"
  39.   '
  40. RETURN
  41. > PROCEDURE drivespace         !  Check free space on destination disk
  42.   '
  43.   appl$=LEFT$(fdest$,1)
  44.   '
  45.   IF appl$="A"
  46.     ap%=1
  47.   ELSE IF appl$="B"
  48.     ap%=2
  49.   ELSE IF appl$="C"
  50.     ap%=3
  51.   ELSE IF appl$="D"
  52.     ap%=4
  53.   ELSE IF appl$="E"
  54.     ap%=5
  55.   ELSE IF appl$="F"
  56.     ap%=6
  57.   ELSE IF appl$="G"
  58.     ap%=7
  59.   ELSE IF appl$="H"
  60.     ap%=8
  61.   ELSE IF appl$="I"
  62.     ap%=9
  63.   ELSE IF appl$="J"
  64.     ap%=10
  65.   ELSE IF appl$="K"
  66.     ap%=11
  67.   ELSE IF appl$="L"
  68.     ap%=12
  69.   ELSE IF appl$="M"
  70.     ap%=13
  71.   ELSE IF appl$="N"
  72.     ap%=14
  73.   ELSE IF appl$="O"
  74.     ap%=15
  75.   ELSE IF appl$="P"
  76.     ap%=16
  77.   ENDIF
  78.   '
  79.   space%=DFREE(ap%)
  80.   '
  81.   dr$=appl$+":\"
  82.   '
  83. RETURN
  84. '
  85. PROCEDURE oldfile            !  File copy procedures
  86.   '
  87.   IF EXIST(fsource$)=TRUE
  88.     OPEN "i",#26,fsource$
  89.     '
  90.     IF EXIST(fdest$)=TRUE
  91.       KILL fdest$
  92.     ENDIF
  93.     '
  94.     IF EXIST(fdest$)=FALSE
  95.       OPEN "o",#16,fdest$
  96.     ENDIF
  97.     '
  98.     GOSUB drivespace
  99.     '
  100.     sour%=LOF(#26)
  101.     IF sour%<space%
  102.       IF sour%>0
  103.         REPEAT
  104.           IF sour%<bsize%
  105.             BGET #26,adr%,sour%
  106.             BPUT #16,adr%,sour%
  107.             sour%=0
  108.           ELSE
  109.             BGET #26,adr%,bsize%
  110.             BPUT #16,adr%,bsize%
  111.             SUB sour%,bsize%
  112.           ENDIF
  113.         UNTIL sour%<=0
  114.       ENDIF
  115.     ELSE IF sour%>=space%
  116.       ALERT 1," No free space | on destination | disk!! ",1," Dag! ",b%
  117.       CLOSE #16
  118.       CLOSE #26
  119.       GOSUB memclear
  120.       GOSUB end_thing
  121.     ENDIF
  122.     '
  123.     CLOSE #26
  124.     CLOSE #16
  125.   ENDIF
  126.   '
  127. RETURN
  128. '
  129. > PROCEDURE burt               !  To boot, or not to boot
  130.   '
  131.   ALERT 1," ReBOOT? ",1,"NO!|Ok",a%
  132.   IF a%=1
  133.     GOSUB memclear
  134.     GOSUB end_thing
  135.   ELSE IF a%=2
  136.     GOSUB memclear
  137.     GOSUB reboot
  138.     END
  139.   ENDIF
  140.   '
  141. RETURN
  142. > PROCEDURE reboot             !  ReBoot, the procedure
  143.   '
  144.   SLPOKE &H420,0
  145.   SLPOKE &H426,0
  146.   SLPOKE &H43A,0
  147.   ~XBIOS(38,L:LPEEK(4))
  148.   '
  149. RETURN
  150. '
  151. > PROCEDURE memclear           !  MFREE and unRESERVE
  152.   '
  153.   y%=MFREE(adr%)
  154.   RESERVE
  155.   '
  156. RETURN
  157. > PROCEDURE end_thing          !  THE END
  158.   '
  159.   SYSTEM
  160.   '
  161. RETURN
  162.